// ddt Client core classes

#pragma once

#include <cstdint>
#include <string>

#include "ddt/sharedLog.h"

#include "lx/misc/geometry.h"

namespace LX
{

#define LOG_MACRO(arg)	arg = #arg##_log

enum ClientLogLevel : LOG_HASH_T
{
	LOG_MACRO(EV_FILTER),
	LOG_MACRO(EV_DRAG),
	LOG_MACRO(EV_KEY),
	
	LOG_MACRO(FOCUS),

	LOG_MACRO(LUA_ERROR),
	LOG_MACRO(LUA_WARNING),
	LOG_MACRO(LUA_DBG),
	LOG_MACRO(INIT_LVL),
	LOG_MACRO(NET_ERROR),
	LOG_MACRO(NET),
	LOG_MACRO(UI),
	LOG_MACRO(LOGIC),
	LOG_MACRO(SYNTH),
	LOG_MACRO(STYLED),

	LOG_MACRO(LIST_CTRL),
	LOG_MACRO(PANE),
	LOG_MACRO(PREFS),
	
	LOG_MACRO(TIMER),
	LOG_MACRO(OVERLAY),
	LOG_MACRO(LIST_BBOX),

	LOG_MACRO(REALIZED),
	LOG_MACRO(RENDER),
	LOG_MACRO(CONTEXT),
	LOG_MACRO(CELL_DATA),
	LOG_MACRO(CLIP),
	LOG_MACRO(COLLISION),
	LOG_MACRO(CELL_EDIT),

	LOG_MACRO(TEXT_VIEW),
	LOG_MACRO(SELECTION),
	LOG_MACRO(PICK_PROFILE),

	LOG_MACRO(SCROLLER),
	LOG_MACRO(SCROLLABLE),
	LOG_MACRO(SCROLLER_COLL),
	LOG_MACRO(SCROLL_FOCUS),

	LOG_MACRO(DYN_LIST),
	LOG_MACRO(DYN_LIST_RENDER),

	LOG_MACRO(BOOKMARK),
	LOG_MACRO(BREAKPOINT_EDIT),

	LOG_MACRO(STC_FUNCTION),
};

#undef LOG_MACRO

} // namespace LX

// nada mas
